![]() METHOD AND SYSTEM FOR ACCESSING A CUSTOMER APPLICATION FILE AND STORAGE DEVICE
专利摘要:
METHOD FOR PROVIDING A CLIENT APPLICATION WITH ACCESS TO A FILE AND STORAGE DEVICE. The present invention relates to techniques and/or systems for providing client application (410, 508, 608, 710) with file access (412, 514, 614, 714) based on local offline version of the file (424, 520, 620) and/or online web version of the file (404, 504, 604, 704). A file (412, 514, 614, 714) can be shared/synchronized from remote source (402, 502, 602, 702) as web storage service. An online web version of the file (404, 504, 604, 704) can be maintained by the web storage service, while local offline versions of the file (424, 520, 620) can be stored on client devices. A synchronization module (416) comprising knowledge of the local and/or web versions of the file can provide client application (410, 508, 608, 710) with access to the file (412, 514, 614, 714) based on local and/or web version of the file. The sync module (416) may also delegate (206) sync authorization to client application (410, 508, 608, 710). 公开号:BR112014012075B1 申请号:R112014012075-7 申请日:2012-11-16 公开日:2021-08-24 发明作者:Francisco Garcia-Ascanio;Joshua Adam Alpern Boehm;David Diffenbaugh;Daniel Vincent Fiordalis;Joseph Wiggs;Alyssa Irwin;Denise Elisabeth Signer;Adam Linkon;Allison O'Mahony;Mona Akmal;Roger Allen Lueder;Miko Arnab Sakhya Singha Bose;Balaji Balasubramanyan 申请人:Microsoft Technology Licensing, Llc; IPC主号:
专利说明:
BACKGROUND [001] Many users have a variety of computing devices such as laptop computers, desktop computers, smart phones and/or other devices. It may be desirable to share data between such devices. In one example, a web storage service can allow a user to upload files to online storage and sync such files across multiple devices. In particular, a synchronization service, such as a synchronization module, can be installed on a user's device. When the files to be shared are available (for example, not currently being accessed by a client application), the sync service can upload the shared files to the web storage service. Unfortunately, the sync service can comprise inefficient and/or inadequate file management capabilities, at least when compared to a client application. For example, the sync service may comprise generic upload/download functionality that may not be customized for particular types of files (for example, while a word processing client application may have the ability to save changes made in a text document in a desired, efficient, etc. way, for example). Notwithstanding, while a client application may comprise sophisticated file management functionality, the client application (unlike the sync service) may nevertheless be unaware of the existence of the sync service, of the sync techniques that may be in place. force and/or availability of offline access. SUMMARY [001] This Summary is provided to introduce a selection of concepts in a simplified form that is further described below in the Detailed Description. This Summary is not intended to identify key factors or essential features of the matter claimed, nor is it intended to be used to limit the scope of the matter claimed. [002] Among other things, one or more systems and/or techniques for providing a client application with access to a file, delegating synchronization authorization to the client application, and/or providing the client application with offline access to the file are presented in this document. A client device hosting a client application can be associated with a synchronization module configured to access a web storage service that hosts an online store. Online storage can be configured to store online web versions of shared files. The Sync module can be configured to receive notifications from the web storage service regarding online web versions of shared files (eg a notification that an online web version of a file has been added, removed and/or modified) . The sync module can be configured to manage local offline versions of shared files (for example, the sync module can add, remove and/or modify local copies of shared files via the web storage service). In this way, the sync module can understand knowledge, such as sync information, associated with local offline versions of files and/or online web versions of files (eg when client applications do not have such knowledge). Consequently, the sync module can provide sync information to a client application (eg a URL of an online web version of a file, a local file path of a local offline version of the file, sync authorization, etc. .), such that the client application can perform file synchronization, access a file based on a local offline version of the file and/or an online web version of the file, and/or access shared files even if the service web storage and/or the client device may be offline (eg offline access may be provided to previously synced files). It can be seen that the file sync performed by the client application can range from a mere file data transfer (eg transferring files to and/or from online storage) to realizing sophisticated sync functionality (eg , synchronize content between files). That is, the synchronization and/or the like may comprise a mere transfer of data, as opposed to the synchronization of data files, although it may of course also comprise synchronization. [003] In an example of providing a client application with access to a file, a request from a client application to access a file may be received. For example, a word processor might generate a request comprising a local file path associated with a local offline version of a shared text file, a URL associated with an online web version of the shared text file, and/or a query general that requests an enumeration of shared text files. If a local offline version of the file is stored locally then the client application can be given access to the local offline version as the file (eg the word processor can be given access to at least one derived text file part of a local offline version of the text file). In one example, access can be given to the local offline version of the file even if an online web version of the file is unavailable (for example, offline). If an online web version of the file is stored remotely, then the client application may be provided with access to the online web version of the file as the file (eg the word processor may be provided with access to the text file derived at least in part from an online web version of the text file). [004] In one example, the client application may be provided with access to both the local offline version of the file and the online web version of the file as the file (for example, the word processor may be provided with access to the file text derived from at least some local offline version of the text file and at least some online web version of the text file, such that the text file accessed by the word processor can be associated with both the local offline version of the text file. text as to the online web version of the text file). In this way, interactions with and/or modifications to the file by the client application can be synchronized between the file accessed by the client application, the local offline version of the file and/or the online web version of the file. For example, synchronization can be performed in real time while the client application is accessing the file. Such real-time synchronization can allow co-authoring between the file and a corresponding file accessed by a remote client application. For example, the file and/or the corresponding file can be updated in real time based on the online web version of the file accessible by the client application and/or the remote client application. [005] In an example of delegation of sync authorization to a client application, a client application configured to interact with a particular file type with which a file is formatted can be identified (for example, a word processor can be configured to interact with text files formatted as a .txt file type). The client application can understand sophisticated file management functionality regarding file type. For example, a word processor can be configured to merely save changes made to an existing text file, as opposed to resaving the entire text file again. Due to the fact that an excess of different file types can be shared by the web storage service (eg .txt text files, .bmp image files, .zip compressed files, .xls spreadsheet files, etc.). ), the sync module may not comprise adequate file management functionality with respect to the various file types (for example, the sync module may merely comprise generic download/upload functionality). Consequently, it can be efficient for the sync module to delegate a sync authorization to the client application so that the client application can sync a file accessed by the client application, a local offline version of the file, and/or an online web version of the file. It can be seen which aspects of this document generally promote, leverage, etc. strengths, advantages, etc. associated with synchronization services and client applications, for example, while mitigating, bypassing, etc. weaknesses, disadvantages, etc. associated with synchronization services and client applications, for example. It can be seen that, in one example, delegating a sync authorization might comprise merely delegating the sync task (eg file transfer) to the client application (eg as opposed to realizing extensive security functionality to grant file access authorization). That is, (unless otherwise indicated) although delegation of a synchronization and/or similar "authorization" may be used throughout this document, this application, including the scope of the appended claims, is not intended to be limited and/or does not require authorization actions (eg request and/or verification of credentials, etc.). [006] In view of the realization of the foregoing purposes and related purposes, the following description and the attached drawings establish certain illustrative aspects and implementations. These are indicative of some of the various ways in which one or more aspects can be employed. Other innovative aspects, advantages and features of the disclosure will become apparent from the following detailed description when considered in conjunction with the accompanying drawings. DESCRIPTION OF DRAWINGS [007] Figure 1 is a flowchart that illustrates an exemplary method of providing a client application with access to a file. [008] Figure 2 is a flowchart that illustrates an example method of delegating a synchronization authorization to a client application. [009] Figure 3 is a flowchart that illustrates an exemplary method of providing a client application with offline access to a file. [0010] Figure 4 is a component block diagram illustrating an example system for delegating a synchronization authorization to a client application. [0011] Figure 5 is a component block diagram illustrating an example system for providing a client application with access to a file. [0012] Figure 6 is a component block diagram illustrating an example system for providing a client application with offline access to a file. [0013] Figure 7 is an illustration of an example of co-authoring permission for a document. [0014] Figure 8 is an illustration of an exemplary computer-readable medium in which processor executable instructions configured to incorporate one or more of the provisions set forth herein may be contained. [0015] Figure 9 illustrates an example computing environment in which one or more of the provisions set forth in this document can be implemented. DETAILED DESCRIPTION [0016] The claimed subject matter is now described with reference to the drawings, in which similar numerical references are generally used to refer to similar elements throughout the document. In the following description, for purposes of explanation, several specific details are set out in order to provide a thorough understanding of the claimed matter. It may be evident, however, that the subject matter claimed can be practiced without these specific details. In other cases, structures and devices are illustrated in block diagram form in order to facilitate the description of the matter. [0017] Currently, data is commonly shared between computing devices. For example, a user can share photos between a desktop computer device and a smart phone using online storage hosted by a web storage service. Synchronization of shared photos can be provided by a sync module on the desktop device and smart phone. Unfortunately, if the web storage service is unavailable (eg offline) then the user may not be able to access the shared photos stored in the online storage from desktop computer device and/or smart phone . In addition, the sync module may be unaware of the file type associated with the shared photos (for example, the sync module may merely comprise a generic upload/download functionality) while a photo client application on the computer device desktop and/or smart phone may be better suited for managing storage/syncing functionality associated with shared photos. However, the photo client application may be unaware of the web storage service and/or sync policy that may be in effect. Thus, without leveraging the photo client application's sophisticated file management functionality, the sync module can be inefficient in syncing shared photos. [0018] Consequently, among other things, one or more systems and/or techniques for providing a client application with access to a file, delegating a synchronization authorization to the client application and/or providing the client application with offline access to file are provided in this document. [0019] One modality for providing a client application with access to a file is illustrated by an example method 100 in Figure 1. At 102, the method is started. At 104, a request from a client application to access a file may be received. In an example of receiving the request, the request may comprise a query to a synchronization module regarding available files shared by a web storage service. The sync module can determine one or more file types that the client application may be able to understand and/or interact with (for example, the client application can provide file type compatibility information to the sync module). In this way, the client application can be provided with access to one or more files formatted according to file types corresponding to the identified file types. In another example of receiving the request, the request might comprise a local file path associated with the file shared by the web storage service. In another example, the request might comprise a URL associated with the file shared by the web storage service. In another example, the request may comprise a resourceID that identifies the file (for example, the resourceID may uniquely identify the file with the synchronization module, web storage service and/or client application). It can be seen that, in one example, the synchronization module may comprise knowledge regarding files shared by the web storage service and/or locally stored versions of shared files, while the client application may not have such knowledge. [0020] At 106, if a local offline version of the file is stored locally then the client application can be provided with access to the local offline version as the file. For example, a local file path associated with the local offline version of the file can be provided to the client application (for example, the sync module can derive the local file path based on a URL associated with the online web version that can specified in the request made by the client application). In this way, the client application can open the file from the local offline version using the local file path. In one example, if the file is designated to be stored locally but is not yet stored locally, then the sync component can provide the client application with a local path where a new local offline version of the file must be created by the client application. At 108, if an online web version of the file is stored remotely (for example, on the online storage hosted by the web storage service), then the client application may be provided with access to the online web version of the file as the file. For example, a URL associated with the online web version of the file might be provided to the client application (for example, the sync module might derive the URL based on a local file path associated with the local offline version that might have been specified on request by the client application). In this way, the client application can open the file from the online web version using the URL. In one example, if the file is designed to be stored remotely but is still not stored remotely, then the sync component can provide the client application with a remote path where a new remote version of the file must be created by client application. [0021] In one example, the client application may merely be provided with access to the local offline version as the file due to the fact that the online web version of the file may not be available (eg offline) and/or may be inefficient for the client application to access it. In another example, the client application may merely be provided with access to the online web version as the file due to the fact that the online web version may be an updated version of the file and/or a local offline version of the file may be unavailable. In another example, the client application might be given access to both the local offline version of the file and the online web version of the file as the file. That is, the file accessed by the client application can be derived from and/or synchronously associated with at least some local offline version of the file and at least some online web version of the file. In this way, the file accessed by the client application, the local offline version of the file and/or the online web version of the file can be synchronized. Such synchronization can allow, for example, the co-authoring of the file between the client application and a remote client application that accesses a corresponding file. For example, the file and the corresponding file can be synchronized via the online web version of the file (eg modifications made to the online web version of the file by the remote client application can be detected by the sync module, and the sync module sync can instruct the client application to sync the file with the online web version of the file). [0022] The client application may comprise sophisticated functionality to manage certain file types, while the sync module may not understand such advanced functionality (for example, the sync module may merely comprise a generic upload/download functionality due to the wide variety of file types that can be associated with shared files). Consequently, a synchronization authorization can be delegated to the client application. In one example, the client application may have a local file path associated with the local offline version of the file, and it may be delegated a sync authorization to synchronize the file accessed by the client application with the local offline version of the file using the local file path. In another example, the client application may be provided with a URL associated with the online web version of the file, and it may be delegated a sync authorization to sync the file accessed by the client application to the online web version of the file with the use of the URL. In another example, the client application can be delegated a sync authorization to sync the file accessed by the client, the local offline version of the file, and/or the online web version of the file. In this way, a file management functionality provided by the client application can be leveraged to provide improved synchronization. [0023] Due to the fact that the sync module can subscribe to notifications from the web storage service, the sync module can provide a notification to the client application that the online web version of the file has been modified, and can instruct the client application to sync the file accessed by the client application and the online web version of the file. Due to the fact that the sync module can monitor a local shared local file store, the sync module can instruct the client application to sync the file accessed by the client application and the local offline version of the file. At 110, the method is completed. [0024] A mode of delegation of synchronization authorization for a client application is illustrated by an example method 200 in Figure 2. At 202, the method is started. At 204, a client application configured to interact with a particular file type with which a file is formatted can be identified. For example, an operating system registry can be consulted to determine if the client application can open files formatted according to file type (for example, a registry key can indicate that a word processor can open a .txt file ). In another example, a client application install, a client application uninstall, a modification to the client application, and/or a file type (for example, .txt and .docx (for example, but not .jpg)) associated with the client application can be identified using one or more registry keys in the operating system registry. At 206, a sync authorization can be delegated to the client application to sync the file accessed by the client application and a local offline version of the file and/or an online web version of the file. In one example, the file can be identified by a resourceID (for example, the resourceID can uniquely identify the file with the synchronization module, web storage service and/or client application). [0025] In one example, the client application can be provided with a local file path associated with the local offline version of the file, and a sync authorization can be delegated to synchronize the file accessed by the client application with the local offline version file using the local file path. In another example, the client application may be provided with a URL associated with the online web version of the file, and a sync authorization may be delegated to synchronize the file accessed by the client application with the online web version of the file with the URL usage. In another example, the client application can be delegated a sync authorization to sync the file accessed by the client, the local offline version of the file, and/or the online web version of the file. In this way, a file management functionality provided by the client application can be leveraged to provide improved synchronization. At 208, the method is completed. [0026] One modality for providing a client application with offline access to a file is illustrated by an exemplary method 300 in Figure 3. At 302, the method is started. At 304, a request to access a file may be received from a client application. In one example, the request may comprise a resourceID that identifies the file (for example, the resourceID may uniquely identify the file with the synchronization module, web storage service, and/or client application). Optionally, at 306, the unavailability of an online web version of the file may be determined (for example, a web storage service hosting an online store comprising the online web version of the file may be inaccessible). It can be seen that, in one example, a sync module might have previously stored a local offline version of the file (for example, the sync module might have downloaded the online web version of the file as the local offline version of the file. file stored locally for the client application). In 308, the client application can be given access to the local offline version of the file. For example, a local file path associated with the local offline version of the file can be provided to the client application (for example, the request may comprise a URL associated with the online web version of the file, and the local file path can be determined based on the URL (eg due to the fact that the online version is not available)). At 310, the method is completed. [0027] Figure 4 illustrates an example of a system 400 configured to delegate a synchronization authorization to a client application 410. System 400 may comprise a synchronization module 416. The synchronization module 416 may be configured to subscribe to notifications 408 from a remote source 402, such as a web storage service that hosts an online storage of shared files. Synchronization module 416 can receive notifications 408 which comprise a variety of information associated with shared/synchronized files, such as notifications that an online web version of a 404 file has been created, modified and/or deleted. Synchronization module 416 may be configured to monitor and/or perform topology events 420 (e.g., create, modify, delete, etc.) associated with local storage 422 (e.g., storage associated with a computing device comprising a client application 410) of shared/synced files, such as a local offline version of a 424 file. In one example, the 404 file can be identified by a resourceID (for example, resourceLD can uniquely identify the 404 file with the sync module 416, web storage service and/or client application 410). [0028] Due to the fact that the synchronization module 416 may not comprise sophisticated functionality for managing particular types of files (for example, a functionality used to determine which data in a file should be synchronized), the synchronization module 406 may be configured to provide synchronization information 414 to client application 410. Client application 410 may comprise sophisticated functionality for managing files formatted according to particular file types. In this way, the client application 410 can perform a synchronization, such as a synchronization 406 and/or 418, between a file 412 accessed by the client application 410, the online web version of the file 404, and/or the local offline version of the file. 424. The sync module 416 can provide sync information to the client application 410 (e.g., information regarding the existence of the sync module 416, where local offline versions of files are stored, etc.). In one example, the sync module 416 may provide a URL associated with the online web version of the file 404 and a sync authorization on the sync information 414, which may allow the client application 410 to sync 406 the file 412 and the online web version of the 404 file, for example. In another example, the sync module 416 may provide a local file path associated with the local offline version of the file 424 and a sync authorization on the sync information 414, which may allow the client application 410 to sync 418 the file 412 and the local offline version of the file 424. In another example, the sync module 416 may provide the local file path, the URL and/or a sync authorization in the sync information 414, which may allow the client application 410 sync file 412, local offline version of file 424, and/or online web version of file 404. Sync module 416 can poll client application 410 for information regarding progress, success, and/or failure of the synchronization (for example, client application 410 may notify synchronization module 416 of new synchronization events that may be available for polling, which may provide ecer, among other things, an increase in synchronization module UI updates with little or no additional overhead, for example). In this way, the client application 410 can perform a robust synchronization on behalf of the synchronization module 416 (e.g., due to the fact that the synchronization module 416 may not be equipped, configured, etc. to manage sophisticated synchronization). [0029] Figure 5 illustrates an example of a system 500 configured to provide a client application 508 with access to a file 514. The system 500 may comprise a synchronization module 510. The synchronization module 510 may be configured to subscribe to notifications from a remote source 502, such as a web storage service that hosts an online storage of shared/synced files. Synchronization module 510 can receive information regarding shared/synchronized files, such as a notification regarding an online web version of file 504 (for example, a notification comprising information regarding the creation, modification and/or deletion of the online version of the file web 504). Synchronization module 510 may be configured to monitor and/or perform topology events (e.g., create, modify, delete, etc.) associated with local storage 516 (e.g., storage associated with a computing device that comprises the application file 508) of shared/synced files, such as a local offline version of the 518 file. [0030] The sync module 510 can be configured to provide sync information 512, such as a URL associated with the online web version of the file 504 and/or a local file path associated with the local offline version of the file 518, to the application In this way, the sync module 510 can provide the client application 508 with 520 access to the local offline version of the file 518 as the file 514 and/or 506 access to the online web version of the file 504 as the file 514. The 508 client application can use the 512 sync information when accessing the 514 file. For example, the 514 file can be opened by the 508 client application using at least some online web version of the 504 file and/or at least some local offline version of the 518 file. [0031] Figure 6 illustrates an example of a system 600 configured to provide a client application 608 with offline access to a file 614. System 600 may comprise a synchronization module 610. The synchronization module 610 may be configured to sign notifications from a remote 602 source, such as a web storage service that hosts an online store of shared/synced files. The synchronization module 610 can receive information regarding the shared/synchronized files, such as a notification regarding an online web version of the file 604 (for example, a notification comprising information regarding the creation, modification and/or deletion of the online version of the file web 604). Sync module 610 may be configured to store locally synced/shared file versions in local storage 616 (e.g., locally accessible storage by client application 608). For example, sync module 610 can store the online web version of file 604 in local storage 616 as a local offline version of file 618. In this way, sync module 610 can provide client application 608 with offline access to the file. file 614 based on the local offline version of file 618. [0032] In one example, the sync module 610 may receive a request from the client application 608 to access the file 614. The sync module 610 may provide the client application 608 with a local file path 612 associated with the offline version location of file 618. Due to the fact that remote source 602 and/or online web version of file 604 may be offline 606 (for example, unavailable to client application 608), sync module 610 may merely provide the local file path 612 for the client application 608. The client application 608 can thus access 620 the local offline version of the file 618 as the file 614 using the local file path 610. client application 608 can be given offline access to file 614. [0033] Figure 7 illustrates an example 700 of permission to co-author a document. A document, such as a text file, can be uploaded to a remote 702 source, such as a web storage service that hosts an online store of shared/synced files, such as an online web version of a 704 file. online web version of file 704 can be shared/synchronized between a 710 client app, a 712 remote client app, and/or other client apps and/or devices (not shown). The online web version of file 704 can be synced 706 to a client device hosting the client application 710 and/or can be synced 708 to a remote client device hosting the remote client application 712. The client application 710 can access the online web version of file 704 as a file 714 (for example, an example of the online web version of file 704). Remote client application 712 can access the online web version of file 704 as a corresponding file 716 (for example, an example of the online web version of file 704). Due to the fact that file 714 and corresponding file 718 can be synchronized with the online web version of file 704 while being accessed by client application 710 and/or remote client application 712, a co-authoring may be allowed. For example, while a user of client application 710 interacts with file 714, the user may be able to see the interactions made by a remote user of remote client application 712 with corresponding file 716. Similarly, as the user remote client application 712 interacts with the corresponding file 716, the remote user may be able to see the user's interactions with the file 714. In this way, co-authoring can be allowed based on sync 706 and/or sync 708 of the online web version of file 704. [0034] Yet another embodiment involves a computer-readable medium comprising processor executable instructions configured to implement one or more of the techniques presented in this document. An exemplary computer-readable medium that may be designed in this manner is illustrated in Figure 8, wherein the deployment 800 comprises a computer-readable medium 816 (e.g., a CD-R, DVD-R or a disk drive platter computer readable data 814 is encoded. Such computer readable data 814, in turn, comprises a set of computer instructions 812 configured to operate in accordance with one or more of the principles set forth herein. In such embodiment 800, processor executable computer instructions 812 may be configured to perform a method 810, as at least part of exemplary method 100 of Figure 1, at least part of exemplary method 200 of Figure 2, and/or at least part of exemplary method 300 of Figure 3, for example. In another embodiment, the processor executable instructions 812 may be configured to deploy a system such as at least part of example system 400 of Figure 4, at least part of example system 500 of Figure 5 and/or at least part of example system 600 of Figure 6, for example. Many of these computer readable media can be designed by those skilled in the art which are configured to operate in accordance with the techniques presented in this document. [0035] Although the subject matter has been described in language specific to structural resources and/or methodological actions, it should be understood that the subject matter defined in the appended claims is not necessarily limited to the specific resources or actions described above. Instead, the specific resources and actions described above are presented as exemplary forms of implementing the claims. [0036] As used in this application, the terms "component", "module", "system", "interface" and the like are generally intended to refer to a computer-related entity, such being hardware, a combination hardware and software, software or software running. For example, a component can be, but without limitation, a process running on a processor, a processor, an object, an executable, an execution thread, a program and/or a computer. For illustrative purposes, both an application that runs on a controller and the controller can be a component. One or more components can reside in a running process and/or thread and a component can be located on one computer and/or distributed among two or more computers. [0037] Furthermore, the claimed matter may be deployed as a method, apparatus or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware or any combination thereof to control a computer to deploy the matter presented. The term "article of manufacture" as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier, or media. Of course, those skilled in the art will recognize that many modifications can be made to this configuration without deviating from the scope or spirit of the matter claimed. [0038] Figure 9 and the following discussion provide a brief overview of a computing environment suitable for implementing modalities of one or more of the provisions set forth in this document. The operating environment in Figure 9 is only an example of a suitable operating environment and is not intended to suggest any limitations on the operating environment's scope of use or functionality. Exemplary computing devices include, but are not limited to, personal computers, server computers, handheld or laptop-type devices, mobile devices (such as mobile phones, Personal Digital Assistants (PDAs), media players and the like), multiprocessor systems, equipment electronics, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like. [0039] Although not required, the modalities are described in the general context of "computer readable instructions" being executed by one or more computing devices. Computer-readable instructions may be distributed via computer-readable media (discussed below). Computer-readable instructions can be implemented as program modules, such as functions, objects, Application Programming Interfaces (APIs), data structures, and the like, that perform particular tasks or implement particular abstract types. Typically, the functionality of computer-readable instructions can be combined or distributed as desired in various environments. [0040] Figure 9 illustrates an example of a system 910 comprising a computing device 912 configured to implement one or more modalities provided herein. In one configuration, computing device 912 includes at least one processing unit 916 and memory 918. Depending on the exact configuration and type of computing device, memory 918 can be volatile (such as RAM, for example), non-volatile (such as ROM, flash memory, etc., for example) or some combination of the two. This configuration is illustrated in Figure 9 by the dotted line 914. [0041] In other embodiments, device 912 may include additional features and/or functionality. For example, device 912 may also include additional storage (e.g., removable and/or non-removable), including, but not limited to, magnetic storage, optical storage, and the like. Such additional storage is illustrated in Figure 9 by storage 920. In one embodiment, the computer-readable instructions for deploying one or more modalities provided herein may be in storage 920. Storage 920 may also store other computer-readable instructions for deploying an operating system, an application program, and the like. Computer-readable instructions can be loaded into memory 918 for execution by processing unit 916, for example. [0042] The term "computer readable media", as used herein, includes computer storage media. Computer storage media includes volatile and non-volatile and removable and non-removable media implemented in any method or technology for storing information such as computer-readable instructions or other data. 918 memory and 920 storage are examples of computer storage media. Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, Digital Versatile Disks (DVDs) or other optical storage, magnetic cassettes, magnetic tape, storage on magnetic disk or other magnetic storage devices, or any other medium that can be used to store the desired information and that can be accessed by the 912 device. Any computer storage media may be part of the 912 device. [0043] Device 912 may also include communication connection(s) 926 that allow device 912 to communicate with other devices. The 926 communication connection(s) may include, but are not limited to, a modem, a Network Interface Card (NIC), an integrated network interface, a radio frequency transmitter/receiver, an infrared port, a USB connection, or other interfaces to connect the computing device 912 to other computing devices. Communication connection(s) 926 may include a wired connection or a wireless connection. Communication link(s) 926 can transmit and/or receive communication media. [0044] The term "computer readable media" may include communication media. Communication media typically embed computer readable instructions or other data in a "modulated data signal" such as a carrier wave or other transport mechanism and include any information delivery media. The term "modulated data signal" may include a signal that has one or more of its characteristics adjusted or altered in such a way as to encode information in the signal. [0045] Device 912 may include 924 input device(s), such as keyboard, mouse, pen, voice input device, voice input device, infrared cameras, video input devices, and/or any other input device. Prohibited. The 922 output device(s), such as one or more displays, speakers, printers, and/or any other output device may also be included in the 912 device. The 924 input device(s) and device(s) 922 output ports can be connected to the 912 device with a wired connection, wireless connection, or any combination of these. In one embodiment, an input device or an output device of another computing device may be used as input device(s) 924 or output device(s) 922 for computing device 912. [0046] The components of computing device 912 may be connected by multiple interconnectors, such as a bus. Such interconnectors may include a Peripheral Component Interconnect (PCI) such as PCI Express, a Universal Serial Bus (USB), firewire (IEEE 1394), an optical bus structure, and the like. In another embodiment, computing device components 912 may be interconnected by a network. For example, memory 918 can be composed of multiple physical memory units located in different physical locations interconnected by a network. [0047] Those of skill in the art will find that storage devices used to store computer-readable instructions can be distributed over an entire network. For example, a computing device 930 accessible via a network 928 may store computer readable instructions for implementing one or more embodiments provided herein. Computing device 912 may access computing device 930 and download a portion or all of the computer-readable instructions for execution. Alternatively, computing device 912 may download portions of the computer-readable instructions as needed, or some instructions may be performed on computing device 912 and some on computing device 930. [0048] Several modalities operations are provided in this document. In one embodiment, one or more of the described operations may constitute computer readable instructions stored on one or more computer readable media which, if performed by a computing device, will cause the computing device to perform the described operations. The order in which some or all of the operations are described should not be interpreted to imply that those operations are necessarily order-dependent. An alternate ordering will be verified by a person skilled in the art who has the benefit of this description. In addition, it will be understood that not all operations are necessarily present in each modality provided in this document. [0049] Furthermore, the word "exemplary" is used in this document to mean that something serves as an example, instance or illustration. Any aspect or design described herein as "exemplary" should not necessarily be construed as beneficial over other features or designs. Instead, the use of the word "exemplary" is intended to present concepts in a concrete way. As used in this application, the term "or" is intended to mean an inclusive "or" rather than an exclusive "or". That is, unless otherwise specified, or if it becomes clear from the context, "X employs A or B" is intended to mean any natural inclusive permutation. That is, if X employs A; X employs B; or X employs both A and B, then "X employs A or B" is satisfied under either of the above instances. In addition, the articles "a" and "an" as used in this application and the appended claims may, in general, be interpreted to mean "one or more", unless otherwise specified or otherwise clear from the context to be directed to a singular form. Also, at least one of A and B and/or similar generally means A or B or both A and B. [0050] Further, although the disclosure has been shown and described in relation to one or more deployments, equivalent changes and modifications will occur to those skilled in the art based on a reading and understanding of this descriptive report and the accompanying drawings. Disclosure includes all such modifications and changes and is limited only by the scope of the following claims. Particularly in relation to the various functions performed by the components described above (eg elements, features, etc.), the terms used to describe such components are intended to correspond, unless otherwise indicated, to any component that performs the specified function of the described component (for example, that it is functionally equivalent), even though it is not structurally equivalent to the presented structure, which performs the function in the exemplary implementations illustrated in the present disclosure document. Furthermore, although a particular feature of the disclosure has been presented in relation to only one of several implementations, that feature may be combined with one or more other features of the other implementations, as may be desired and advantageous for any given or particular application. Furthermore, to the extent that the terms "includes", "has", "has", "with" or variants thereof are used in the detailed description or in the claims, such terms are intended to be inclusive in a manner similar to term "who understands".
权利要求:
Claims (12) [0001] 1. Method characterized in that it comprises the steps of: delegating (206) synchronization authorization to a client application (410, 508, 608, 710) to synchronize a file (412, 514, 614, 714) of a type file to at least one of a local offline version of the file (424, 520, 620) and an online web version of the file (404, 504, 604, 704), in response to a determination that the client application ( 410, 508, 608, 710) is configured to open the file (412, 514, 614, 714) and has the functionality to support the file type, the determination being based on an operating system record; receiving (304) a request from a client application (410, 508, 608, 710) to access the file (412, 514, 614, 714); and provide the client application with access to both the local offline version of the file and the online web version of the file as the file. [0002] 2. Method according to claim 1, characterized in that the file accessed by the client application is derived from at least some of the local offline version of the file and at least some of the online web version of the file. [0003] 3. Method according to claim 1, characterized in that the step of delegating (206) comprises: providing the client application (410, 508, 608, 710) with a uniform resource locator (URL) associated with the online web version of the file (404, 504, 604, 704); and delegate (206) synchronization authorization to the client application (410, 508, 608, 710) to synchronize the file (412, 514, 614, 714) with the online web version of the file (404, 504, 604, 704) with the use of the URL. [0004] 4. Method according to claim 1, characterized in that it comprises the steps of: providing the client application (410, 508, 608, 710) with a local file path (612) associated with the local offline version of the file (424, 520, 620) and a uniform resource locator (URL) associated with the online web version of the file (404, 504, 604, 704); and delegate (206) synchronization authorization to the client application (410, 508, 608, 710) to synchronize the local offline version of the file (424, 520, 620) with the online web version of the file (404, 504, 604, 704) using the local file path (612) and the URL. [0005] 5. A computer-readable storage device having a method of providing a client application with access to a file, the device characterized in that it comprises: delegating (206) synchronization authorization to a client application (410, 508 , 608, 710) to synchronize a file (412, 514, 614, 714) of a file type to at least one of a local offline version of the file (424, 520, 620) and an online web version of the file ( 404, 504, 604, 704), in response to a determination that the client application (410, 508, 608, 710) is configured to open the file (412, 514, 614, 714) and has functionality to support the file type, the determination being based on an operating system registry; receiving (304) a request from a client application (410, 508, 608, 710) to access a file (412, 514, 614, 714); and provide the client application with access to both the local offline version of the file and the online web version of the file, as an archive. [0006] 6. A computer-readable storage device according to claim 5, characterized in that the file accessed by the client application is derived from at least some of the local offline version of the file and at least some of the online web version of the file. [0007] 7. A computer-readable storage device according to claim 5, characterized in that delegating (206) comprises: providing the client application (410, 508, 608, 710) with a uniform resource locator (URL) associated with the online web version of the file (404, 504, 604, 704); and delegate (206) synchronization authorization to the client application (410, 508, 608, 710) to synchronize the file (412, 514, 614, 714) with the online web version of the file (404, 504, 604, 704) with the use of the URL. [0008] 8. A computer-readable storage device according to claim 5, characterized in that it comprises: providing the client application (410, 508, 608, 710) with a local file path (612) associated with the offline version location of the file (424, 520, 620) and of a uniform resource locator (URL) associated with the online web version of the file (404, 504, 604, 704); and delegate (206) synchronization authorization to the client application (410, 508, 608, 710) to synchronize the local offline version of the file (424, 520, 620) with the online web version of the file (404, 504, 604, 704) using the local file path (612) and the URL. [0009] 9. System (400) characterized in that it comprises: a processor coupled to a memory, the memory storing the method for providing the client application with access to a file, the method comprising: delegating (206) authorization sync to a client application (410, 508, 608, 710) to sync a file (412, 514, 614, 714) of a file type to at least one of a local offline version of the file (424, 520, 620) and an online web version of the file (404, 504, 604, 704) in response to a determination that the client application (410, 508, 608, 710) is configured to open the file (412, 514 , 614, 714) and has the functionality to support the file type, the determination being based on an operating system record; receiving (304) a request from a client application (410, 508, 608, 710) to access the file (412, 514, 614, 714); and provide the client application with access to both the local offline version of the file and the online web version of the file, such as the archive. [0010] 10. System according to claim 9, characterized in that the file accessed by the client application is derived from at least some of the local offline version of the file and at least some of the online web version of the file. [0011] 11. System according to claim 9, characterized in that delegating (206) comprises: providing the client application (410, 508, 608, 710) with a uniform resource locator (URL) associated with the online version of the file web (404, 504, 604, 704); and delegate (206) synchronization authorization to the client application (410, 508, 608, 710) to synchronize the file (412, 514, 614, 714) with the online web version of the file (404, 504, 604, 704) with the use of the URL. [0012] 12. System according to claim 9, characterized in that it comprises: providing the client application (410, 508, 608, 710) with a local file path (612) associated with the local offline version of the file (424 , 520, 620) and a uniform resource locator (URL) associated with the online web version of the file (404, 504, 604, 704); and delegate (206) synchronization authorization to the client application (410, 508, 608, 710) to synchronize the local offline version of the file (424, 520, 620) with the online web version of the file (404, 504, 604, 704) using the local file path (612) and the URL.
类似技术:
公开号 | 公开日 | 专利标题 BR112014012075B1|2021-08-24|METHOD AND SYSTEM FOR ACCESSING A CUSTOMER APPLICATION FILE AND STORAGE DEVICE JP6309969B2|2018-04-11|Application programming interface for data synchronization in online storage systems US9563637B2|2017-02-07|Synchronized file management across multiple disparate endpoints JP2018537740A|2018-12-20|Synchronization protocol for multi-premises hosting of digital content items US9817987B2|2017-11-14|Restricting access to content JP2018536207A|2018-12-06|Synchronization protocol for multi-premises hosting of digital content items KR20100133382A|2010-12-21|Application management within deployable object hierarchy US8965862B2|2015-02-24|Directory oplock US9244960B2|2016-01-26|Metadata-driven version management service in pervasive environment US20100235829A1|2010-09-16|Programming model for installing and distributing occasionally connected applications US9892000B2|2018-02-13|Undo changes on a client device US10209976B2|2019-02-19|Automated application installation WO2014200541A1|2014-12-18|App package deployment US11144600B2|2021-10-12|Available, scalable, and tunable document-oriented storage services TW200928773A|2009-07-01|Asynchronous replication US9509509B2|2016-11-29|Random identifier generation for offline database US10902018B2|2021-01-26|Synchronizing in-use source data and an unmodified migrated copy thereof Bedi et al.2019|Design and implementation of an efficient multi cloud storage approach for resource constrained mobile devices US10015248B1|2018-07-03|Syncronizing changes to stored data among multiple client devices US10917468B2|2021-02-09|Systems and methods of re-associating content items
同族专利:
公开号 | 公开日 BR112014012075A2|2017-06-13| EP2783294A4|2015-08-26| AU2012340908B2|2017-08-31| MX2014006095A|2014-06-23| IN2014CN03323A|2015-07-03| RU2014120423A|2015-11-27| BR112014012075A8|2021-03-02| MX342077B|2016-09-13| WO2013078082A1|2013-05-30| EP2783294A1|2014-10-01| JP2015502607A|2015-01-22| CN103946845A|2014-07-23| CA2856081C|2019-08-06| CA2856081A1|2013-05-30| CN103946845B|2018-01-02| AU2012340908A1|2014-05-29| KR101985042B1|2019-05-31| RU2620721C2|2017-05-29| US20130132463A1|2013-05-23| US9355115B2|2016-05-31| KR20140095502A|2014-08-01| JP6272771B2|2018-01-31|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题 JPH11249948A|1998-02-27|1999-09-17|Toshiba Corp|Computer system, file resource switching method used in this system, and storage medium| US6578054B1|1999-10-04|2003-06-10|Microsoft Corporation|Method and system for supporting off-line mode of operation and synchronization using resource state information| US7546353B2|1999-12-02|2009-06-09|Western Digital Technologies, Inc.|Managed peer-to-peer applications, systems and methods for distributed data access and storage| EP1117049A1|2000-01-14|2001-07-18|Sun Microsystems, Inc.|Dynamic conversion of data| US6907546B1|2000-03-27|2005-06-14|Accenture Llp|Language-driven interface for an automated testing framework| EP1563389A4|2001-08-01|2008-06-25|Actona Technologies Ltd|Virtual file-sharing network| US7275105B2|2002-01-16|2007-09-25|Laszlo Systems, Inc.|Enabling online and offline operation| WO2003063029A1|2002-01-18|2003-07-31|Bea Systems, Inc.|System and method for using virtual directories to service url requests in application servers| US6979438B2|2002-01-25|2005-12-27|The Procter & Gamble Company|Antiperspirant compositions containing petrolatum| US6938042B2|2002-04-03|2005-08-30|Laplink Software Inc.|Peer-to-peer file sharing| US7743022B2|2003-02-28|2010-06-22|Microsoft Corporation|Method and system for synchronizing data shared among peer computing devices| JP2005044104A|2003-07-28|2005-02-17|Toshiba Corp|Contents management device and contents management method| US7930757B2|2003-10-31|2011-04-19|Adobe Systems Incorporated|Offline access in a document control system| US9083765B2|2004-07-02|2015-07-14|Oracle International Corporation|Systems and methods of offline processing| US20090094332A1|2004-09-02|2009-04-09|Zimbra, Inc.|System and method for enabling offline use of email through a browser interface| US20060101064A1|2004-11-08|2006-05-11|Sharpcast, Inc.|Method and apparatus for a file sharing and synchronization system| US7593943B2|2005-01-14|2009-09-22|Microsoft Corporation|Method and system for synchronizing multiple user revisions to a shared object| US20060224687A1|2005-03-31|2006-10-05|Popkin Laird A|Method and apparatus for offline cooperative file distribution using cache nodes| US7607582B2|2005-04-22|2009-10-27|Microsoft Corporation|Aggregation and synchronization of nearby media| US7594003B2|2005-08-02|2009-09-22|Aol Llc|Client/server web application architectures for offline usage, data structures, and related methods| US20070088702A1|2005-10-03|2007-04-19|Fridella Stephen A|Intelligent network client for multi-protocol namespace redirection| US7356767B2|2005-10-27|2008-04-08|International Business Machines Corporation|Extensible resource resolution framework| US7743026B2|2006-01-31|2010-06-22|Microsoft Corporation|Redirection to local copies of server-based files| US20070239725A1|2006-03-28|2007-10-11|Microsoft Corporation|Active cache offline access and management of project files| US7526530B2|2006-05-05|2009-04-28|Adobe Systems Incorporated|System and method for cacheing web files| KR101496185B1|2006-08-24|2015-03-26|지멘스 인더스트리 인코포레이티드|Devices, systems, and methods for configuring a programmable logic controller| US20080086540A1|2006-10-06|2008-04-10|James Scott|Method and system for executing a normally online application in an offline mode| US7966426B2|2006-11-14|2011-06-21|Microsoft Corporation|Offline synchronization capability for client application| US8015581B2|2007-01-05|2011-09-06|Verizon Patent And Licensing Inc.|Resource data configuration for media content access systems and methods| US8452853B2|2007-03-05|2013-05-28|International Business Machines Corporation|Browser with offline web-application architecture| JP5151244B2|2007-05-15|2013-02-27|富士ゼロックス株式会社|Document management system, document management method, and computer program| US8156146B2|2007-09-28|2012-04-10|Xcerion Aktiebolag|Network file system| US20090125526A1|2007-11-13|2009-05-14|Brent Neufeld|System and method for providing automated non-volatile offline access to relational data| US8037110B2|2007-12-27|2011-10-11|Microsoft Corporation|Business data access client for online/offline client use| US9003059B2|2008-03-31|2015-04-07|Microsoft Technology Licensing, Llc|Running applications in an online or offline mode based on the availability of the connection to the remote web server| US8352870B2|2008-04-28|2013-01-08|Microsoft Corporation|Conflict resolution| US20100262582A1|2009-04-10|2010-10-14|Microsoft Corporation|Content synchronization across multiple computers| US9330191B2|2009-06-15|2016-05-03|Microsoft Technology Licensing, Llc|Identifying changes for online documents| KR101090469B1|2009-07-31|2011-12-06|주식회사 하이닉스반도체|Data control circuit| US9111287B2|2009-09-30|2015-08-18|Microsoft Technology Licensing, Llc|Video content-aware advertisement placement| WO2011117461A1|2010-03-23|2011-09-29|Nokia Corporation|Method and apparatus for managing files in an online account| KR101482150B1|2010-05-10|2015-01-14|에스케이플래닛 주식회사|Web application executable device and web application management method therof| US8510267B2|2011-03-08|2013-08-13|Rackspace Us, Inc.|Synchronization of structured information repositories| US9202196B2|2011-05-06|2015-12-01|Verizon Patent And Licensing Inc.|Rule-based tracking of products based on intelligent identifiers|US8898742B2|2011-10-11|2014-11-25|Paramount Pictures Corporation|Systems and methods for controlling access to content distributed over a network| US9594686B2|2012-05-05|2017-03-14|Google Inc.|File handling within a cloud-based file system| TW201445497A|2013-05-16|2014-12-01|Fong-Yuan Chang|Device-aware file synchronizing method| WO2014209304A1|2013-06-26|2014-12-31|Hewlett-Packard Development Company, L.P.|Thin client computing device taskbar and widgets| US9398111B1|2013-08-30|2016-07-19|hopTo Inc.|File caching upon disconnection| US9904720B2|2013-09-18|2018-02-27|Facebook, Inc.|Generating offline content| US20150106478A1|2013-10-15|2015-04-16|Microsoft Corporation|File handlers supporting dynamic data streams| WO2015094195A1|2013-12-17|2015-06-25|Hitachi Data Systems Corporation|Transaction query engine| KR102221100B1|2014-06-02|2021-02-26|삼성전자주식회사|Method for storing data by using cloud services and apparatus thereof| US20150365469A1|2014-06-17|2015-12-17|Google Inc.|System and method for integrating web and native applications from web-based contexts| US9876849B2|2014-11-05|2018-01-23|Google Llc|Opening local applications from browsers| US10554664B2|2016-05-02|2020-02-04|Microsoft Technology Licensing, Llc|Activity feed for hosted files| US10609116B2|2016-10-25|2020-03-31|Leapfrog Enterprises, Inc.|Local synchronization of web-based interaction| US10783010B2|2018-09-24|2020-09-22|Salesforce.Com, Inc.|Offline briefcase synchronization| US11048504B2|2019-06-21|2021-06-29|Sap Se|Providing offline mode for mobile applications| CN113395477A|2020-03-13|2021-09-14|北京字节跳动网络技术有限公司|Sharing method and device based on video conference, electronic equipment and computer readable medium|
法律状态:
2017-12-12| B25A| Requested transfer of rights approved|Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC (US) | 2018-12-04| B06F| Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]| 2019-11-26| B06U| Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]| 2021-06-01| B350| Update of information on the portal [chapter 15.35 patent gazette]| 2021-06-15| B09A| Decision: intention to grant [chapter 9.1 patent gazette]| 2021-08-24| B16A| Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]|Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 16/11/2012, OBSERVADAS AS CONDICOES LEGAIS. |
优先权:
[返回顶部]
申请号 | 申请日 | 专利标题 US13/301,039|US9355115B2|2011-11-21|2011-11-21|Client application file access| US13/301,039|2011-11-21| PCT/US2012/065468|WO2013078082A1|2011-11-21|2012-11-16|Client application file access| 相关专利
Sulfonates, polymers, resist compositions and patterning process
Washing machine
Washing machine
Device for fixture finishing and tension adjusting of membrane
Structure for Equipping Band in a Plane Cathode Ray Tube
Process for preparation of 7 alpha-carboxyl 9, 11-epoxy steroids and intermediates useful therein an
国家/地区
|